1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.testing;
18
19 import static com.google.common.base.Preconditions.checkNotNull;
20
21 import com.google.common.annotations.GwtCompatible;
22
23 import java.io.ByteArrayInputStream;
24 import java.io.ByteArrayOutputStream;
25 import java.io.IOException;
26 import java.io.ObjectInputStream;
27 import java.io.ObjectOutputStream;
28
29
30
31
32
33
34 @GwtCompatible(emulated = true)
35 final class Platform {
36
37
38
39 @SuppressWarnings("unchecked")
40 static <T> T reserialize(T object) {
41 checkNotNull(object);
42 ByteArrayOutputStream bytes = new ByteArrayOutputStream();
43 try {
44 ObjectOutputStream out = new ObjectOutputStream(bytes);
45 out.writeObject(object);
46 ObjectInputStream in = new ObjectInputStream(
47 new ByteArrayInputStream(bytes.toByteArray()));
48 return (T) in.readObject();
49 } catch (IOException e) {
50 throw new RuntimeException(e);
51 } catch (ClassNotFoundException e) {
52 throw new RuntimeException(e);
53 }
54 }
55
56 private Platform() {}
57 }